Variableninitialisierung
Der Standard-Initialisierungswert für alle Deklarationen ist 0
. Im Deklarationsteil können Sie für jede Variable und jeden Datentyp auch benutzerdefinierte Initialisierungswerte angeben.
Die benutzerdefinierte Initialisierung beginnt mit dem Zuweisungsoperator :=
und besteht aus einem beliebigen, gültigen Ausdruck der Programmiersprache ST (strukturierter Text). Somit definieren Sie den Initialisierungswert mit Hilfe von Konstanten, anderen Variablen oder Funktionen. Wenn Sie eine Variable verwenden, müssen Sie diese ebenfalls initialisieren.
Datentyp | Initialisierungswert |
---|---|
beliebiger Zahlendatentyp |
|
jeder Pointer |
|
|
|
| Der Standard-Initialisierungswert von jedem Element |
Struktur | Wenn für die einzelnen Elemente kein expliziter Wert in der Deklaration festgelegt wurde, ist der Standardwert des Datentyps der Initialisierungswert. |
VAR var1:INT := 12; //initialization value 12 x : INT := 13 + 8; //initalization value defined by an expression of constants y : INT := x + fun(4); //initialization value defined by an expression, //that contains a function call; notice the order! z : POINTER TO INT := ADR(y); //not described in the standard IEC61131-3: // initialization value defined by an adress function; // Notice: In this case the pointer will not be initialized // during an Online Change *) END_VAR
Hinweise zur Initialisierungsreihenfolge
Als erstes die Konstanten
Ab Compiler-Version 3.5.3.40 werden Variablen in einem Funktionsbaustein in folgender Reihenfolge initialisiert: Zuerst alle Konstanten gemäß der Reihenfolge ihrer Deklarationen, danach alle anderen Variablen gemäß der Reihenfolge ihrer Deklarationen.
Globale Variablen vor lokalen Variablen
Ab Compiler-Version 3.3.2.0 werden Variablen aus globalen Variablenlisten immer vor den lokalen Variablen einer POU initialisiert.
Für weitere Informationen siehe Deklaration und Initialisierung von Strukturvariablen und Pragma 'global_init_slot'.